iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
1
Modern Web

師父領進門 修行在個人系列 第 17

17—JS挑戰(11)—Sticky Nav + Event Capture, Propagation, Bubbling

  • 分享至 

  • xImage
  •  

準備考試,直接來,不廢話。

  1. Sticky Nav
  • 短短幾行效果這麼好,學到了
  • width不能做transition, 要用max-width
const nav = document.querySelector('#main')
const TopofNav = nav.offsetTop

function fixNav(){
  if (window.scrollY >= TopofNav) {
    document.body.style.paddingTop = nav.offsetHeight + 'px'
    document.body.classList.add('fixed-nav')
  }else {
    document.body.style.paddingTop = 0
    document.body.classList.remove('fixed-nav')
  }
}

window.addEventListener('scroll', fixNav)
  1. Event Capture, Propagation, Bubbling and Once
  • capture:true top-down 上到下 預設為false
  • e.stopPropagation() stop bubbling up
  • once 觸發一次後就會unbind listener = removeEventListener 所以只會執行一次!
  • 參考資料:
const divs = document.querySelectorAll('div')

function logText(e) {
  //e.stopPropagation()
  console.log(this.classList.value);
}

divs.forEach(div => div.addEventListener('click', logText, {
  capture: false,
  once: true
}))

上一篇
16—JS挑戰—(11)-
下一篇
18–JS挑戰–(13)–Cool Dropdown Navbar + Click & Drag
系列文
師父領進門 修行在個人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言